<script type="text/javascript" src="js/numberformatter/jshashtable-2.1.js"></script>
<script type="text/javascript" src="js/numberformatter/jquery.numberformatter-1.2.3.min.js"></script>

<div class="container_16">
    <div class="push_1 grid_12 containerHeight">
        <form id="comprar" name="comprar" action="backend/inversiones/inversiones/comprar" method="post">
            <fieldset style="border-color: red;">
                <legend><?= lang("infoEmpresa"); ?></legend>
                <table id="compra" width="100%">
                    <thead>
                    <tr>
                        <th><?= lang("ticker"); ?></th>
                        <th><?= lang("valor"); ?></th>
                        <th><?= lang("accionesDisponibles"); ?></th>
                        <th><?= lang("max"); ?></th>
                        <th><?= lang("min"); ?></th>
                        <th><?= lang("capital"); ?></th>
                        <th><?= lang("hora"); ?></th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                        <td><?= $valoresEmpresa[0]->ticker ?></td>
                        <td><span id="valor"><?= number_format($valoresEmpresa[0]->valor, 2, ',', '.') ?></span></td>
                        <td><?= number_format($valoresEmpresa[0]->accionesDisponibles, 0, ',', '.') ?></td>
                        <td><?= number_format($valoresEmpresa[0]->max, 2, ',', '.') ?></td>
                        <td><?= number_format($valoresEmpresa[0]->min, 2, ',', '.') ?></td>
                        <td><?= number_format($valoresEmpresa[0]->capital, 2, ',', '.') ?></td>
                        <td><?= $valoresEmpresa[0]->hora ?></td>
                    </tr>
                    </tbody>
                </table>
                <input type="hidden" name="idEmpresa" value="<?= $valoresEmpresa[0]->id ?>"/>
                <input type="hidden" id="valAccion" name="valor" value="<?= $valoresEmpresa[0]->valor ?>"/>
            </fieldset>
            <fieldset style="border-color: red;">
                <legend><?= lang("seleccionaCuenta"); ?></legend>
                <table>
                    <?php foreach ($cuentas as $c): ?>
                    <tr>
                        <td>
                            <input saldo="<?= $c->saldo ?>" id="<?= $c->id ?>" type="radio" value="<?= $c->id ?>"
                                   name="cuenta" onclick="seleccionarCuenta(<?= $c->saldo ?>)"/>
                            <label
                                for="<?= $c->id ?>"><?= $c->codigoEntidad . " " . $c->codigoOficina . " " . $c->codigoControl . " " . $c->codigoCuenta . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Saldo:</b> " . number_format($c->saldo, 2, ",", ".") ?></label>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </table>
            </fieldset>
            <fieldset style="border-color: red;">
                <legend><?= lang("datosInversion"); ?></legend>
                <table>
                    <tr>
                        <th><?= lang("indicaCantidad"); ?> </th>
                        <td>
                            <input id="cantidadAcciones" type="range" min="0"
                                   max="<?= $valoresEmpresa[0]->accionesDisponibles ?>" value="0" step="1"
                                   disabled="disabled" onchange="showValueAcciones(this.value)"/>
                            <span id="rangeAcciones"></span>
                        </td>
                        <td>
                            <input id="txtCantidadAcciones" size="8" type="text" disabled="disabled" name="txtCantidad"
                                   onkeyup="cambiarValor(this.value)"/>
                        </td>
                    </tr>
                    <tr>
                        <th><?= lang("indicaCantidadPrecio"); ?> </th>
                        <td>
                            <input id="cantidadPrecio" disabled="disabled" type="range" min="0" max="0" value="0"
                                   step="1" onchange="showValuePrecio(this.value)"/>
                            <span id="rangePrecio"></span>
                        </td>
                        <td>
                            <input id="txtCantidadPrecio" disabled="disabled" size="8" type="text" name="txtPrecio"
                                   onkeyup="precioMaximo(this.value)"/>
                        </td>
                    </tr>
                    <tr>
                        <th>Total</th>
                        <td><input type="text" id="total" size="12" disabled/>&euro;</td>
                    </tr>
                </table>
                <button id="btnComprar" type="button"><?= lang("comprar"); ?></button>
            </fieldset>
        </form>
    </div>
</div>

<div id="oculto" style="display: none;">

</div>

<script>
    function precioMaximo(precio) {
        var precioAccion = $('#compra tbody tr').children(':eq(1)').text();
        var cantidadAcciones = parseFloat(precio.replace(",", ".")) / parseFloat(precioAccion.replace(",", "."));
        precioAccion = parseFloat(precioAccion.replace(",", "."));
        var accionesDisponibles = $('#compra tbody tr').children(':eq(2)').text();
        //accionesDisponibles = parseFloat(accionesDisponibles.replace(",", "."));
        accionesDisponibles = replaceAll(accionesDisponibles,".","");

        if (cantidadAcciones > accionesDisponibles) {
            $("#txtCantidadAcciones").attr("value", parseInt(accionesDisponibles));
            $("#total").attr("value", (precioAccion * parseInt(accionesDisponibles)).toFixed(2));
        } else {
            $("#txtCantidadAcciones").attr("value", parseInt(cantidadAcciones));
            $("#total").attr("value", (precioAccion * parseInt(cantidadAcciones)).toFixed(2));
            $("#cantidadAcciones").attr("value", cantidadAcciones);
        }
        $("#total").change();
    }
    function replaceAll(text, busca, reemplaza) {
        while (text.toString().indexOf(busca) != -1)
            text = text.toString().replace(busca, reemplaza);
        return text;
    }
    function seleccionarCuenta(saldo) {
        $("#cantidadPrecio").attr("max", saldo);
        $("#cantidadPrecio").attr("disabled", false);
        $("#txtCantidadPrecio").attr("disabled", false);
        $("#cantidadAcciones").attr("disabled", false);
        $("#txtCantidadAcciones").attr("disabled", false);
    }
    function showValueAcciones(newValue) {
        if (newValue === null) {
            $("#txtCantidadAcciones").attr("value", 0);
        } else {
            $("#txtCantidadAcciones").attr("value", newValue);
            $("#txtCantidadAcciones").change();
            $("#total").attr("value", (parseFloat($("#valor").text().replace(",", ".")) * parseFloat($("#cantidadAcciones").val())));
            var total = parseFloat($("#total").val()).toFixed(2);
            $("#total").attr("value", total);
            $("#total").change();
        }
    }
    function showValuePrecio(newValue) {
        if (newValue === null) {
            $("#txtCantidadPrecio").attr("value", 0);
        } else {
            $("#txtCantidadPrecio").attr("value", newValue);
            $("#txtCantidadPrecio").change();
            $("#total").attr("value", newValue);
            var total = parseFloat($("#total").val()).toFixed(2);
            $("#total").attr("value", total);
            $("#total").change();
            precioMaximo(total);
        }
    }
    function cambiarValor(nuevoValor) {
        if (nuevoValor === "") {
            $("#cantidadAcciones").attr("value", 0);
            $("#total").attr("value", 0);
        } else {
            $("#cantidadAcciones").attr("value", nuevoValor);
            $("#total").attr("value", (parseFloat($("#valor").text().replace(",", ".")) * parseFloat($("#cantidadAcciones").val())));
            var total = parseFloat($("#total").val()).toFixed(2);
            $("#total").attr("value", total);
            $("#total").change();
        }
    }
    $(document).ready(function () {
        $("#txtCantidadAcciones").change(function () {
            $(this).formatNumber({format:"#,###.##", locale:'es'});
            var precio = $("#total").val();
            precio = replaceAll(precio, ".", "");
            precio = replaceAll(precio, ",", ".");
            $("#cantidadPrecio").attr("value", precio);

        });


        $("#total").change(function () {
            $(this).formatNumber({format:"#,###.##", locale:'es'});
            $("#txtCantidadPrecio").attr("value", $(this).val());
        });
        $('#compra').dataTable({
            "bJQueryUI":true,
            "bInfo":false,
            "bSort":false,
            "bAutoWidth":false,
            "bPaginate":false
        });
        $("#txtCantidadAcciones").attr("value", 0);
    });

    $("#btnComprar").click(function () {
        var chekeado = false;
        for (var i in document.getElementsByName("cuenta")) {
            if (document.getElementsByName("cuenta")[i].checked === true) {
                chekeado = true;
            }
        }
        var cantidad = false;
        var saldoCorrecto = false
        var tmpcant = $("#txtCantidadAcciones").val().replace(/\056/g, "");
        /*var tmpdinero = parseFloat($("#total").val().replace(/\056/g, ""));
    var saldoCuenta = parseFloat($('input[name=cuenta]:checked', '#comprar').attr("saldo"));*/

        var tmpdinero = parseFloat($("#total").val().replace(/\056/g, ""));
        var saldoCuenta = parseFloat($('input[name=cuenta]:checked', '#comprar').attr("saldo"));

        if (tmpcant > 0) {
            cantidad = true;
        }

        if (tmpdinero <= saldoCuenta) {
            saldoCorrecto = true;
        }

        if (chekeado && cantidad && saldoCorrecto) {
            $("#txtCantidadAcciones").val($("#txtCantidadAcciones").val().replace(/\056/g, ""));
            var tot = $("#total").val().replace(/\056/g, "");
            tot = tot.replace(/\054/g, ".");
            $("#total").val(tot);
            $("#comprar").submit();
        } else {
            var mensaje = "";
            if (!chekeado) {
                mensaje = "<?= lang("seleccionaCuenta"); ?>";
            }
            if (!cantidad) {
                mensaje += "<br><?= lang('indicaCantidadIncorrecta'); ?>";
            }
            if (!saldoCorrecto) {
                mensaje += "<br><?= lang('saldoNegativo'); ?>";
            }
            $('#oculto').html(mensaje);
            $('#oculto').dialog({modal:true,
                height:150,
                width:250,
                resizable:false,
                buttons:[
                    {
                        text:"Aceptar",
                        click:function () {
                            $(this).dialog("close");
                        }
                    }
                ]
            });
        }
    });
</script>
<style>
    .dataTables_filter {
        display: none;
    }
</style>
